/*
 * Copyright 2008 The Apache Software Foundation
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.mybatis.generator.internal.db;

import java.util.HashSet;
import java.util.Set;

/**
 * This class contains a somewhat comprehensive list of SQL reserved words.
 * Since different databases have different reserved words, this list is
 * inclusive of many different databases - so it may include words that are not
 * reserved in some databases.
 * This list is based on the list from Drupal Handbook:
 * http://drupal.org/node/141051 With additions for DB2
 * 
 * @author Jeff Butler
 */
public class SqlReservedWords
{
    
    private static Set<String> RESERVED_WORDS;
    
    static {
        String[] words = { "A", //$NON-NLS-1$
                           "ABORT", //$NON-NLS-1$
                           "ABS", //$NON-NLS-1$
                           "ABSOLUTE", //$NON-NLS-1$
                           "ACCESS", //$NON-NLS-1$
                           "ACTION", //$NON-NLS-1$
                           "ADA", //$NON-NLS-1$
                           "ADD", // DB2 //$NON-NLS-1$
                           "ADMIN", //$NON-NLS-1$
                           "AFTER", // DB2 //$NON-NLS-1$
                           "AGGREGATE", //$NON-NLS-1$
                           "ALIAS", // DB2 //$NON-NLS-1$
                           "ALL", // DB2 //$NON-NLS-1$
                           "ALLOCATE", // DB2 //$NON-NLS-1$
                           "ALLOW", // DB2 //$NON-NLS-1$
                           "ALSO", //$NON-NLS-1$
                           "ALTER", // DB2 //$NON-NLS-1$
                           "ALWAYS", //$NON-NLS-1$
                           "ANALYSE", //$NON-NLS-1$
                           "ANALYZE", //$NON-NLS-1$
                           "AND", // DB2 //$NON-NLS-1$
                           "ANY", // DB2 //$NON-NLS-1$
                           "APPLICATION", // DB2 //$NON-NLS-1$
                           "ARE", //$NON-NLS-1$
                           "ARRAY", //$NON-NLS-1$
                           "AS", // DB2 //$NON-NLS-1$
                           "ASC", //$NON-NLS-1$
                           "ASENSITIVE", //$NON-NLS-1$
                           "ASSERTION", //$NON-NLS-1$
                           "ASSIGNMENT", //$NON-NLS-1$
                           "ASSOCIATE", // DB2 //$NON-NLS-1$
                           "ASUTIME", // DB2 //$NON-NLS-1$
                           "ASYMMETRIC", //$NON-NLS-1$
                           "AT", //$NON-NLS-1$
                           "ATOMIC", //$NON-NLS-1$
                           "ATTRIBUTE", //$NON-NLS-1$
                           "ATTRIBUTES", //$NON-NLS-1$
                           "AUDIT", // DB2 //$NON-NLS-1$
                           "AUTHORIZATION", // DB2 //$NON-NLS-1$
                           "AUTO_INCREMENT", //$NON-NLS-1$
                           "AUX", // DB2 //$NON-NLS-1$
                           "AUXILIARY", // DB2 //$NON-NLS-1$
                           "AVG", //$NON-NLS-1$
                           "AVG_ROW_LENGTH", //$NON-NLS-1$
                           "BACKUP", //$NON-NLS-1$
                           "BACKWARD", //$NON-NLS-1$
                           "BEFORE", // DB2 //$NON-NLS-1$
                           "BEGIN", // DB2 //$NON-NLS-1$
                           "BERNOULLI", //$NON-NLS-1$
                           "BETWEEN", // DB2 //$NON-NLS-1$
                           "BIGINT", //$NON-NLS-1$
                           "BINARY", // DB2 //$NON-NLS-1$
                           "BIT", //$NON-NLS-1$
                           "BIT_LENGTH", //$NON-NLS-1$
                           "BITVAR", //$NON-NLS-1$
                           "BLOB", //$NON-NLS-1$
                           "BOOL", //$NON-NLS-1$
                           "BOOLEAN", //$NON-NLS-1$
                           "BOTH", //$NON-NLS-1$
                           "BREADTH", //$NON-NLS-1$
                           "BREAK", //$NON-NLS-1$
                           "BROWSE", //$NON-NLS-1$
                           "BUFFERPOOL", // DB2 //$NON-NLS-1$
                           "BULK", //$NON-NLS-1$
                           "BY", // DB2 //$NON-NLS-1$
                           "C", //$NON-NLS-1$
                           "CACHE", // DB2 //$NON-NLS-1$
                           "CALL", // DB2 //$NON-NLS-1$
                           "CALLED", // DB2 //$NON-NLS-1$
                           "CAPTURE", // DB2 //$NON-NLS-1$
                           "CARDINALITY", // DB2 //$NON-NLS-1$
                           "CASCADE", //$NON-NLS-1$
                           "CASCADED", // DB2 //$NON-NLS-1$
                           "CASE", // DB2 //$NON-NLS-1$
                           "CAST", // DB2 //$NON-NLS-1$
                           "CATALOG", //$NON-NLS-1$
                           "CATALOG_NAME", //$NON-NLS-1$
                           "CCSID", // DB2 //$NON-NLS-1$
                           "CEIL", //$NON-NLS-1$
                           "CEILING", //$NON-NLS-1$
                           "CHAIN", //$NON-NLS-1$
                           "CHANGE", //$NON-NLS-1$
                           "CHAR", // DB2 //$NON-NLS-1$
                           "CHAR_LENGTH", //$NON-NLS-1$
                           "CHARACTER", // DB2 //$NON-NLS-1$
                           "CHARACTER_LENGTH", //$NON-NLS-1$
                           "CHARACTER_SET_CATALOG", //$NON-NLS-1$
                           "CHARACTER_SET_NAME", //$NON-NLS-1$
                           "CHARACTER_SET_SCHEMA", //$NON-NLS-1$
                           "CHARACTERISTICS", //$NON-NLS-1$
                           "CHARACTERS", //$NON-NLS-1$
                           "CHECK", // DB2 //$NON-NLS-1$
                           "CHECKED", //$NON-NLS-1$
                           "CHECKPOINT", //$NON-NLS-1$
                           "CHECKSUM", //$NON-NLS-1$
                           "CLASS", //$NON-NLS-1$
                           "CLASS_ORIGIN", //$NON-NLS-1$
                           "CLOB", //$NON-NLS-1$
                           "CLOSE", // DB2 //$NON-NLS-1$
                           "CLUSTER", // DB2 //$NON-NLS-1$
                           "CLUSTERED", //$NON-NLS-1$
                           "COALESCE", //$NON-NLS-1$
                           "COBOL", //$NON-NLS-1$
                           "COLLATE", //$NON-NLS-1$
                           "COLLATION", //$NON-NLS-1$
                           "COLLATION_CATALOG", //$NON-NLS-1$
                           "COLLATION_NAME", //$NON-NLS-1$
                           "COLLATION_SCHEMA", //$NON-NLS-1$
                           "COLLECT", //$NON-NLS-1$
                           "COLLECTION", // DB2 //$NON-NLS-1$
                           "COLLID", // DB2 //$NON-NLS-1$
                           "COLUMN", // DB2 //$NON-NLS-1$
                           "COLUMN_NAME", //$NON-NLS-1$
                           "COLUMNS", //$NON-NLS-1$
                           "COMMAND_FUNCTION", //$NON-NLS-1$
                           "COMMAND_FUNCTION_CODE", //$NON-NLS-1$
                           "COMMENT", // DB2 //$NON-NLS-1$
                           "COMMIT", // DB2 //$NON-NLS-1$
                           "COMMITTED", //$NON-NLS-1$
                           "COMPLETION", //$NON-NLS-1$
                           "COMPRESS", //$NON-NLS-1$
                           "COMPUTE", //$NON-NLS-1$
                           "CONCAT", // DB2 //$NON-NLS-1$
                           "CONDITION", // DB2 //$NON-NLS-1$
                           "CONDITION_NUMBER", //$NON-NLS-1$
                           "CONNECT", // DB2 //$NON-NLS-1$
                           "CONNECTION", // DB2 //$NON-NLS-1$
                           "CONNECTION_NAME", //$NON-NLS-1$
                           "CONSTRAINT", // DB2 //$NON-NLS-1$
                           "CONSTRAINT_CATALOG", //$NON-NLS-1$
                           "CONSTRAINT_NAME", //$NON-NLS-1$
                           "CONSTRAINT_SCHEMA", //$NON-NLS-1$
                           "CONSTRAINTS", //$NON-NLS-1$
                           "CONSTRUCTOR", //$NON-NLS-1$
                           "CONTAINS", // DB2 //$NON-NLS-1$
                           "CONTAINSTABLE", //$NON-NLS-1$
                           "CONTINUE", // DB2 //$NON-NLS-1$
                           "CONVERSION", //$NON-NLS-1$
                           "CONVERT", //$NON-NLS-1$
                           "COPY", //$NON-NLS-1$
                           "CORR", //$NON-NLS-1$
                           "CORRESPONDING", //$NON-NLS-1$
                           "COUNT", // DB2 //$NON-NLS-1$
                           "COUNT_BIG", // DB2 //$NON-NLS-1$
                           "COVAR_POP", //$NON-NLS-1$
                           "COVAR_SAMP", //$NON-NLS-1$
                           "CREATE", // DB2 //$NON-NLS-1$
                           "CREATEDB", //$NON-NLS-1$
                           "CREATEROLE", //$NON-NLS-1$
                           "CREATEUSER", //$NON-NLS-1$
                           "CROSS", // DB2 //$NON-NLS-1$
                           "CSV", //$NON-NLS-1$
                           "CUBE", //$NON-NLS-1$
                           "CUME_DIST", //$NON-NLS-1$
                           "CURRENT", // DB2 //$NON-NLS-1$
                           "CURRENT_DATE", // DB2 //$NON-NLS-1$
                           "CURRENT_DEFAULT_TRANSFORM_GROUP", //$NON-NLS-1$
                           "CURRENT_LC_CTYPE", // DB2 //$NON-NLS-1$
                           "CURRENT_PATH", // DB2 //$NON-NLS-1$
                           "CURRENT_ROLE", //$NON-NLS-1$
                           "CURRENT_SERVER", // DB2 //$NON-NLS-1$
                           "CURRENT_TIME", // DB2 //$NON-NLS-1$
                           "CURRENT_TIMESTAMP", // DB2 //$NON-NLS-1$
                           "CURRENT_TIMEZONE", // DB2 //$NON-NLS-1$
                           "CURRENT_TRANSFORM_GROUP_FOR_TYPE", //$NON-NLS-1$
                           "CURRENT_USER", // DB2 //$NON-NLS-1$
                           "CURSOR", // DB2 //$NON-NLS-1$
                           "CURSOR_NAME", //$NON-NLS-1$
                           "CYCLE", // DB2 //$NON-NLS-1$
                           "DATA", // DB2 //$NON-NLS-1$
                           "DATABASE", // DB2 //$NON-NLS-1$
                           "DATABASES", //$NON-NLS-1$
                           "DATE", //$NON-NLS-1$
                           "DATETIME", //$NON-NLS-1$
                           "DATETIME_INTERVAL_CODE", //$NON-NLS-1$
                           "DATETIME_INTERVAL_PRECISION", //$NON-NLS-1$
                           "DAY", // DB2 //$NON-NLS-1$
                           "DAY_HOUR", //$NON-NLS-1$
                           "DAY_MICROSECOND", //$NON-NLS-1$
                           "DAY_MINUTE", //$NON-NLS-1$
                           "DAY_SECOND", //$NON-NLS-1$
                           "DAYOFMONTH", //$NON-NLS-1$
                           "DAYOFWEEK", //$NON-NLS-1$
                           "DAYOFYEAR", //$NON-NLS-1$
                           "DAYS", // DB2 //$NON-NLS-1$
                           "DB2GENERAL", // DB2 //$NON-NLS-1$
                           "DB2GNRL", // DB2 //$NON-NLS-1$
                           "DB2SQL", // DB2 //$NON-NLS-1$
                           "DBCC", //$NON-NLS-1$
                           "DBINFO", // DB2 //$NON-NLS-1$
                           "DEALLOCATE", //$NON-NLS-1$
                           "DEC", //$NON-NLS-1$
                           "DECIMAL", //$NON-NLS-1$
                           "DECLARE", // DB2 //$NON-NLS-1$
                           "DEFAULT", // DB2 //$NON-NLS-1$
                           "DEFAULTS", // DB2 //$NON-NLS-1$
                           "DEFERRABLE", //$NON-NLS-1$
                           "DEFERRED", //$NON-NLS-1$
                           "DEFINED", //$NON-NLS-1$
                           "DEFINER", //$NON-NLS-1$
                           "DEFINITION", // DB2 //$NON-NLS-1$
                           "DEGREE", //$NON-NLS-1$
                           "DELAY_KEY_WRITE", //$NON-NLS-1$
                           "DELAYED", //$NON-NLS-1$
                           "DELETE", // DB2 //$NON-NLS-1$
                           "DELIMITER", //$NON-NLS-1$
                           "DELIMITERS", //$NON-NLS-1$
                           "DENSE_RANK", //$NON-NLS-1$
                           "DENY", //$NON-NLS-1$
                           "DEPTH", //$NON-NLS-1$
                           "DEREF", //$NON-NLS-1$
                           "DERIVED", //$NON-NLS-1$
                           "DESC", //$NON-NLS-1$
                           "DESCRIBE", //$NON-NLS-1$
                           "DESCRIPTOR", // DB2 //$NON-NLS-1$
                           "DESTROY", //$NON-NLS-1$
                           "DESTRUCTOR", //$NON-NLS-1$
                           "DETERMINISTIC", // DB2 //$NON-NLS-1$
                           "DIAGNOSTICS", //$NON-NLS-1$
                           "DICTIONARY", //$NON-NLS-1$
                           "DISABLE", //$NON-NLS-1$
                           "DISALLOW", // DB2 //$NON-NLS-1$
                           "DISCONNECT", // DB2 //$NON-NLS-1$
                           "DISK", //$NON-NLS-1$
                           "DISPATCH", //$NON-NLS-1$
                           "DISTINCT", // DB2 //$NON-NLS-1$
                           "DISTINCTROW", //$NON-NLS-1$
                           "DISTRIBUTED", //$NON-NLS-1$
                           "DIV", //$NON-NLS-1$
                           "DO", // DB2 //$NON-NLS-1$
                           "DOMAIN", //$NON-NLS-1$
                           "DOUBLE", // DB2 //$NON-NLS-1$
                           "DROP", // DB2 //$NON-NLS-1$
                           "DSNHATTR", // DB2 //$NON-NLS-1$
                           "DSSIZE", // DB2 //$NON-NLS-1$
                           "DUAL", //$NON-NLS-1$
                           "DUMMY", //$NON-NLS-1$
                           "DUMP", //$NON-NLS-1$
                           "DYNAMIC", // DB2 //$NON-NLS-1$
                           "DYNAMIC_FUNCTION", //$NON-NLS-1$
                           "DYNAMIC_FUNCTION_CODE", //$NON-NLS-1$
                           "EACH", // DB2 //$NON-NLS-1$
                           "EDITPROC", // DB2 //$NON-NLS-1$
                           "ELEMENT", //$NON-NLS-1$
                           "ELSE", // DB2 //$NON-NLS-1$
                           "ELSEIF", // DB2 //$NON-NLS-1$
                           "ENABLE", //$NON-NLS-1$
                           "ENCLOSED", //$NON-NLS-1$
                           "ENCODING", // DB2 //$NON-NLS-1$
                           "ENCRYPTED", //$NON-NLS-1$
                           "END", // DB2 //$NON-NLS-1$
                           "END-EXEC", // DB2 //$NON-NLS-1$
                           "END-EXEC1", // DB2 //$NON-NLS-1$
                           "ENUM", //$NON-NLS-1$
                           "EQUALS", //$NON-NLS-1$
                           "ERASE", // DB2 //$NON-NLS-1$
                           "ERRLVL", //$NON-NLS-1$
                           "ESCAPE", // DB2 //$NON-NLS-1$
                           "ESCAPED", //$NON-NLS-1$
                           "EVERY", //$NON-NLS-1$
                           "EXCEPT", // DB2 //$NON-NLS-1$
                           "EXCEPTION", // DB2 //$NON-NLS-1$
                           "EXCLUDE", //$NON-NLS-1$
                           "EXCLUDING", // DB2 //$NON-NLS-1$
                           "EXCLUSIVE", //$NON-NLS-1$
                           "EXEC", //$NON-NLS-1$
                           "EXECUTE", // DB2 //$NON-NLS-1$
                           "EXISTING", //$NON-NLS-1$
                           "EXISTS", // DB2 //$NON-NLS-1$
                           "EXIT", // DB2 //$NON-NLS-1$
                           "EXP", //$NON-NLS-1$
                           "EXPLAIN", //$NON-NLS-1$
                           "EXTERNAL", // DB2 //$NON-NLS-1$
                           "EXTRACT", //$NON-NLS-1$
                           "FALSE", //$NON-NLS-1$
                           "FENCED", // DB2 //$NON-NLS-1$
                           "FETCH", // DB2 //$NON-NLS-1$
                           "FIELDPROC", // DB2 //$NON-NLS-1$
                           "FIELDS", //$NON-NLS-1$
                           "FILE", // DB2 //$NON-NLS-1$
                           "FILLFACTOR", //$NON-NLS-1$
                           "FILTER", //$NON-NLS-1$
                           "FINAL", // DB2 //$NON-NLS-1$
                           "FIRST", //$NON-NLS-1$
                           "FLOAT", //$NON-NLS-1$
                           "FLOAT4", //$NON-NLS-1$
                           "FLOAT8", //$NON-NLS-1$
                           "FLOOR", //$NON-NLS-1$
                           "FLUSH", //$NON-NLS-1$
                           "FOLLOWING", //$NON-NLS-1$
                           "FOR", // DB2 //$NON-NLS-1$
                           "FORCE", //$NON-NLS-1$
                           "FOREIGN", // DB2 //$NON-NLS-1$
                           "FORTRAN", //$NON-NLS-1$
                           "FORWARD", //$NON-NLS-1$
                           "FOUND", //$NON-NLS-1$
                           "FREE", // DB2 //$NON-NLS-1$
                           "FREETEXT", //$NON-NLS-1$
                           "FREETEXTTABLE", //$NON-NLS-1$
                           "FREEZE", //$NON-NLS-1$
                           "FROM", // DB2 //$NON-NLS-1$
                           "FULL", // DB2 //$NON-NLS-1$
                           "FULLTEXT", //$NON-NLS-1$
                           "FUNCTION", // DB2 //$NON-NLS-1$
                           "FUSION", //$NON-NLS-1$
                           "G", //$NON-NLS-1$
                           "GENERAL", // DB2 //$NON-NLS-1$
                           "GENERATED", // DB2 //$NON-NLS-1$
                           "GET", // DB2 //$NON-NLS-1$
                           "GLOBAL", // DB2 //$NON-NLS-1$
                           "GO", // DB2 //$NON-NLS-1$
                           "GOTO", // DB2 //$NON-NLS-1$
                           "GRANT", // DB2 //$NON-NLS-1$
                           "GRANTED", //$NON-NLS-1$
                           "GRANTS", //$NON-NLS-1$
                           "GRAPHIC", // DB2 //$NON-NLS-1$
                           "GREATEST", //$NON-NLS-1$
                           "GROUP", // DB2 //$NON-NLS-1$
                           "GROUPING", //$NON-NLS-1$
                           "HANDLER", // DB2 //$NON-NLS-1$
                           "HAVING", // DB2 //$NON-NLS-1$
                           "HEADER", //$NON-NLS-1$
                           "HEAP", //$NON-NLS-1$
                           "HIERARCHY", //$NON-NLS-1$
                           "HIGH_PRIORITY", //$NON-NLS-1$
                           "HOLD", // DB2 //$NON-NLS-1$
                           "HOLDLOCK", //$NON-NLS-1$
                           "HOST", //$NON-NLS-1$
                           "HOSTS", //$NON-NLS-1$
                           "HOUR", // DB2 //$NON-NLS-1$
                           "HOUR_MICROSECOND", //$NON-NLS-1$
                           "HOUR_MINUTE", //$NON-NLS-1$
                           "HOUR_SECOND", //$NON-NLS-1$
                           "HOURS", // DB2 //$NON-NLS-1$
                           "IDENTIFIED", //$NON-NLS-1$
                           "IDENTITY", // DB2 //$NON-NLS-1$
                           "IDENTITY_INSERT", //$NON-NLS-1$
                           "IDENTITYCOL", //$NON-NLS-1$
                           "IF", // DB2 //$NON-NLS-1$
                           "IGNORE", //$NON-NLS-1$
                           "ILIKE", //$NON-NLS-1$
                           "IMMEDIATE", // DB2 //$NON-NLS-1$
                           "IMMUTABLE", //$NON-NLS-1$
                           "IMPLEMENTATION", //$NON-NLS-1$
                           "IMPLICIT", //$NON-NLS-1$
                           "IN", // DB2 //$NON-NLS-1$
                           "INCLUDE", //$NON-NLS-1$
                           "INCLUDING", // DB2 //$NON-NLS-1$
                           "INCREMENT", // DB2 //$NON-NLS-1$
                           "INDEX", // DB2 //$NON-NLS-1$
                           "INDICATOR", // DB2 //$NON-NLS-1$
                           "INFILE", //$NON-NLS-1$
                           "INFIX", //$NON-NLS-1$
                           "INHERIT", // DB2 //$NON-NLS-1$
                           "INHERITS", //$NON-NLS-1$
                           "INITIAL", //$NON-NLS-1$
                           "INITIALIZE", //$NON-NLS-1$
                           "INITIALLY", //$NON-NLS-1$
                           "INNER", // DB2 //$NON-NLS-1$
                           "INOUT", // DB2 //$NON-NLS-1$
                           "INPUT", //$NON-NLS-1$
                           "INSENSITIVE", // DB2 //$NON-NLS-1$
                           "INSERT", // DB2 //$NON-NLS-1$
                           "INSERT_ID", //$NON-NLS-1$
                           "INSTANCE", //$NON-NLS-1$
                           "INSTANTIABLE", //$NON-NLS-1$
                           "INSTEAD", //$NON-NLS-1$
                           "INT", //$NON-NLS-1$
                           "INT1", //$NON-NLS-1$
                           "INT2", //$NON-NLS-1$
                           "INT3", //$NON-NLS-1$
                           "INT4", //$NON-NLS-1$
                           "INT8", //$NON-NLS-1$
                           "INTEGER", //$NON-NLS-1$
                           "INTEGRITY", // DB2 //$NON-NLS-1$
                           "INTERSECT", //$NON-NLS-1$
                           "INTERSECTION", //$NON-NLS-1$
                           "INTERVAL", //$NON-NLS-1$
                           "INTO", // DB2 //$NON-NLS-1$
                           "INVOKER", //$NON-NLS-1$
                           "IS", // DB2 //$NON-NLS-1$
                           "ISAM", //$NON-NLS-1$
                           "ISNULL", //$NON-NLS-1$
                           "ISOBID", // DB2 //$NON-NLS-1$
                           "ISOLATION", // DB2 //$NON-NLS-1$
                           "ITERATE", // DB2 //$NON-NLS-1$
                           "JAR", // DB2 //$NON-NLS-1$
                           "JAVA", // DB2 //$NON-NLS-1$
                           "JOIN", // DB2 //$NON-NLS-1$
                           "K", //$NON-NLS-1$
                           "KEY", // DB2 //$NON-NLS-1$
                           "KEY_MEMBER", //$NON-NLS-1$
                           "KEY_TYPE", //$NON-NLS-1$
                           "KEYS", //$NON-NLS-1$
                           "KILL", //$NON-NLS-1$
                           "LABEL", // DB2 //$NON-NLS-1$
                           "LANCOMPILER", //$NON-NLS-1$
                           "LANGUAGE", // DB2 //$NON-NLS-1$
                           "LARGE", //$NON-NLS-1$
                           "LAST", //$NON-NLS-1$
                           "LAST_INSERT_ID", //$NON-NLS-1$
                           "LATERAL", //$NON-NLS-1$
                           "LC_CTYPE", // DB2 //$NON-NLS-1$
                           "LEADING", //$NON-NLS-1$
                           "LEAST", //$NON-NLS-1$
                           "LEAVE", // DB2 //$NON-NLS-1$
                           "LEFT", // DB2 //$NON-NLS-1$
                           "LENGTH", //$NON-NLS-1$
                           "LESS", //$NON-NLS-1$
                           "LEVEL", //$NON-NLS-1$
                           "LIKE", // DB2 //$NON-NLS-1$
                           "LIMIT", //$NON-NLS-1$
                           "LINENO", //$NON-NLS-1$
                           "LINES", //$NON-NLS-1$
                           "LINKTYPE", // DB2 //$NON-NLS-1$
                           "LISTEN", //$NON-NLS-1$
                           "LN", //$NON-NLS-1$
                           "LOAD", //$NON-NLS-1$
                           "LOCAL", // DB2 //$NON-NLS-1$
                           "LOCALE", // DB2 //$NON-NLS-1$
                           "LOCALTIME", //$NON-NLS-1$
                           "LOCALTIMESTAMP", //$NON-NLS-1$
                           "LOCATION", //$NON-NLS-1$
                           "LOCATOR", // DB2 //$NON-NLS-1$
                           "LOCATORS", // DB2 //$NON-NLS-1$
                           "LOCK", // DB2 //$NON-NLS-1$
                           "LOCKMAX", // DB2 //$NON-NLS-1$
                           "LOCKSIZE", // DB2 //$NON-NLS-1$
                           "LOGIN", //$NON-NLS-1$
                           "LOGS", //$NON-NLS-1$
                           "LONG", // DB2 //$NON-NLS-1$
                           "LONGBLOB", //$NON-NLS-1$
                           "LONGTEXT", //$NON-NLS-1$
                           "LOOP", // DB2 //$NON-NLS-1$
                           "LOW_PRIORITY", //$NON-NLS-1$
                           "LOWER", //$NON-NLS-1$
                           "M", //$NON-NLS-1$
                           "MAP", //$NON-NLS-1$
                           "MATCH", //$NON-NLS-1$
                           "MATCHED", //$NON-NLS-1$
                           "MAX", //$NON-NLS-1$
                           "MAX_ROWS", //$NON-NLS-1$
                           "MAXEXTENTS", //$NON-NLS-1$
                           "MAXVALUE", // DB2 //$NON-NLS-1$
                           "MEDIUMBLOB", //$NON-NLS-1$
                           "MEDIUMINT", //$NON-NLS-1$
                           "MEDIUMTEXT", //$NON-NLS-1$
                           "MEMBER", //$NON-NLS-1$
                           "MERGE", //$NON-NLS-1$
                           "MESSAGE_LENGTH", //$NON-NLS-1$
                           "MESSAGE_OCTET_LENGTH", //$NON-NLS-1$
                           "MESSAGE_TEXT", //$NON-NLS-1$
                           "METHOD", //$NON-NLS-1$
                           "MICROSECOND", // DB2 //$NON-NLS-1$
                           "MICROSECONDS", // DB2 //$NON-NLS-1$
                           "MIDDLEINT", //$NON-NLS-1$
                           "MIN", //$NON-NLS-1$
                           "MIN_ROWS", //$NON-NLS-1$
                           "MINUS", //$NON-NLS-1$
                           "MINUTE", // DB2 //$NON-NLS-1$
                           "MINUTE_MICROSECOND", //$NON-NLS-1$
                           "MINUTE_SECOND", //$NON-NLS-1$
                           "MINUTES", // DB2 //$NON-NLS-1$
                           "MINVALUE", // DB2 //$NON-NLS-1$
                           "MLSLABEL", //$NON-NLS-1$
                           "MOD", //$NON-NLS-1$
                           "MODE", // DB2 //$NON-NLS-1$
                           "MODIFIES", // DB2 //$NON-NLS-1$
                           "MODIFY", //$NON-NLS-1$
                           "MODULE", //$NON-NLS-1$
                           "MONTH", // DB2 //$NON-NLS-1$
                           "MONTHNAME", //$NON-NLS-1$
                           "MONTHS", // DB2 //$NON-NLS-1$
                           "MORE", //$NON-NLS-1$
                           "MOVE", //$NON-NLS-1$
                           "MULTISET", //$NON-NLS-1$
                           "MUMPS", //$NON-NLS-1$
                           "MYISAM", //$NON-NLS-1$
                           "NAME", //$NON-NLS-1$
                           "NAMES", //$NON-NLS-1$
                           "NATIONAL", //$NON-NLS-1$
                           "NATURAL", //$NON-NLS-1$
                           "NCHAR", //$NON-NLS-1$
                           "NCLOB", //$NON-NLS-1$
                           "NESTING", //$NON-NLS-1$
                           "NEW", // DB2 //$NON-NLS-1$
                           "NEW_TABLE", // DB2 //$NON-NLS-1$
                           "NEXT", //$NON-NLS-1$
                           "NO", // DB2 //$NON-NLS-1$
                           "NO_WRITE_TO_BINLOG", //$NON-NLS-1$
                           "NOAUDIT", //$NON-NLS-1$
                           "NOCACHE", // DB2 //$NON-NLS-1$
                           "NOCHECK", //$NON-NLS-1$
                           "NOCOMPRESS", //$NON-NLS-1$
                           "NOCREATEDB", //$NON-NLS-1$
                           "NOCREATEROLE", //$NON-NLS-1$
                           "NOCREATEUSER", //$NON-NLS-1$
                           "NOCYCLE", // DB2 //$NON-NLS-1$
                           "NODENAME", // DB2 //$NON-NLS-1$
                           "NODENUMBER", // DB2 //$NON-NLS-1$
                           "NOINHERIT", //$NON-NLS-1$
                           "NOLOGIN", //$NON-NLS-1$
                           "NOMAXVALUE", // DB2 //$NON-NLS-1$
                           "NOMINVALUE", // DB2 //$NON-NLS-1$
                           "NONCLUSTERED", //$NON-NLS-1$
                           "NONE", //$NON-NLS-1$
                           "NOORDER", // DB2 //$NON-NLS-1$
                           "NORMALIZE", //$NON-NLS-1$
                           "NORMALIZED", //$NON-NLS-1$
                           "NOSUPERUSER", //$NON-NLS-1$
                           "NOT", // DB2 //$NON-NLS-1$
                           "NOTHING", //$NON-NLS-1$
                           "NOTIFY", //$NON-NLS-1$
                           "NOTNULL", //$NON-NLS-1$
                           "NOWAIT", //$NON-NLS-1$
                           "NULL", // DB2 //$NON-NLS-1$
                           "NULLABLE", //$NON-NLS-1$
                           "NULLIF", //$NON-NLS-1$
                           "NULLS", // DB2 //$NON-NLS-1$
                           "NUMBER", //$NON-NLS-1$
                           "NUMERIC", //$NON-NLS-1$
                           "NUMPARTS", // DB2 //$NON-NLS-1$
                           "OBID", // DB2 //$NON-NLS-1$
                           "OBJECT", //$NON-NLS-1$
                           "OCTET_LENGTH", //$NON-NLS-1$
                           "OCTETS", //$NON-NLS-1$
                           "OF", // DB2 //$NON-NLS-1$
                           "OFF", //$NON-NLS-1$
                           "OFFLINE", //$NON-NLS-1$
                           "OFFSET", //$NON-NLS-1$
                           "OFFSETS", //$NON-NLS-1$
                           "OIDS", //$NON-NLS-1$
                           "OLD", // DB2 //$NON-NLS-1$
                           "OLD_TABLE", // DB2 //$NON-NLS-1$
                           "ON", // DB2 //$NON-NLS-1$
                           "ONLINE", //$NON-NLS-1$
                           "ONLY", //$NON-NLS-1$
                           "OPEN", // DB2 //$NON-NLS-1$
                           "OPENDATASOURCE", //$NON-NLS-1$
                           "OPENQUERY", //$NON-NLS-1$
                           "OPENROWSET", //$NON-NLS-1$
                           "OPENXML", //$NON-NLS-1$
                           "OPERATION", //$NON-NLS-1$
                           "OPERATOR", //$NON-NLS-1$
                           "OPTIMIZATION", // DB2 //$NON-NLS-1$
                           "OPTIMIZE", // DB2 //$NON-NLS-1$
                           "OPTION", // DB2 //$NON-NLS-1$
                           "OPTIONALLY", //$NON-NLS-1$
                           "OPTIONS", //$NON-NLS-1$
                           "OR", // DB2 //$NON-NLS-1$
                           "ORDER", // DB2 //$NON-NLS-1$
                           "ORDERING", //$NON-NLS-1$
                           "ORDINALITY", //$NON-NLS-1$
                           "OTHERS", //$NON-NLS-1$
                           "OUT", // DB2 //$NON-NLS-1$
                           "OUTER", // DB2 //$NON-NLS-1$
                           "OUTFILE", //$NON-NLS-1$
                           "OUTPUT", //$NON-NLS-1$
                           "OVER", //$NON-NLS-1$
                           "OVERLAPS", //$NON-NLS-1$
                           "OVERLAY", //$NON-NLS-1$
                           "OVERRIDING", // DB2 //$NON-NLS-1$
                           "OWNER", //$NON-NLS-1$
                           "PACK_KEYS", //$NON-NLS-1$
                           "PACKAGE", // DB2 //$NON-NLS-1$
                           "PAD", //$NON-NLS-1$
                           "PARAMETER", // DB2 //$NON-NLS-1$
                           "PARAMETER_MODE", //$NON-NLS-1$
                           "PARAMETER_NAME", //$NON-NLS-1$
                           "PARAMETER_ORDINAL_POSITION", //$NON-NLS-1$
                           "PARAMETER_SPECIFIC_CATALOG", //$NON-NLS-1$
                           "PARAMETER_SPECIFIC_NAME", //$NON-NLS-1$
                           "PARAMETER_SPECIFIC_SCHEMA", //$NON-NLS-1$
                           "PARAMETERS", //$NON-NLS-1$
                           "PART", // DB2 //$NON-NLS-1$
                           "PARTIAL", //$NON-NLS-1$
                           "PARTITION", // DB2 //$NON-NLS-1$
                           "PASCAL", //$NON-NLS-1$
                           "PASSWORD", //$NON-NLS-1$
                           "PATH", // DB2 //$NON-NLS-1$
                           "PCTFREE", //$NON-NLS-1$
                           "PERCENT", //$NON-NLS-1$
                           "PERCENT_RANK", //$NON-NLS-1$
                           "PERCENTILE_CONT", //$NON-NLS-1$
                           "PERCENTILE_DISC", //$NON-NLS-1$
                           "PIECESIZE", // DB2 //$NON-NLS-1$
                           "PLACING", //$NON-NLS-1$
                           "PLAN", // DB2 //$NON-NLS-1$
                           "PLI", //$NON-NLS-1$
                           "POSITION", // DB2 //$NON-NLS-1$
                           "POSTFIX", //$NON-NLS-1$
                           "POWER", //$NON-NLS-1$
                           "PRECEDING", //$NON-NLS-1$
                           "PRECISION", // DB2 //$NON-NLS-1$
                           "PREFIX", //$NON-NLS-1$
                           "PREORDER", //$NON-NLS-1$
                           "PREPARE", // DB2 //$NON-NLS-1$
                           "PREPARED", //$NON-NLS-1$
                           "PRESERVE", //$NON-NLS-1$
                           "PRIMARY", // DB2 //$NON-NLS-1$
                           "PRINT", //$NON-NLS-1$
                           "PRIOR", //$NON-NLS-1$
                           "PRIQTY", // DB2 //$NON-NLS-1$
                           "PRIVILEGES", // DB2 //$NON-NLS-1$
                           "PROC", //$NON-NLS-1$
                           "PROCEDURAL", //$NON-NLS-1$
                           "PROCEDURE", // DB2 //$NON-NLS-1$
                           "PROCESS", //$NON-NLS-1$
                           "PROCESSLIST", //$NON-NLS-1$
                           "PROGRAM", // DB2 //$NON-NLS-1$
                           "PSID", // DB2 //$NON-NLS-1$
                           "PUBLIC", //$NON-NLS-1$
                           "PURGE", //$NON-NLS-1$
                           "QUERYNO", // DB2 //$NON-NLS-1$
                           "QUOTE", //$NON-NLS-1$
                           "RAID0", //$NON-NLS-1$
                           "RAISERROR", //$NON-NLS-1$
                           "RANGE", //$NON-NLS-1$
                           "RANK", //$NON-NLS-1$
                           "RAW", //$NON-NLS-1$
                           "READ", // DB2 //$NON-NLS-1$
                           "READS", // DB2 //$NON-NLS-1$
                           "READTEXT", //$NON-NLS-1$
                           "REAL", //$NON-NLS-1$
                           "RECHECK", //$NON-NLS-1$
                           "RECONFIGURE", //$NON-NLS-1$
                           "RECOVERY", // DB2 //$NON-NLS-1$
                           "RECURSIVE", //$NON-NLS-1$
                           "REF", //$NON-NLS-1$
                           "REFERENCES", // DB2 //$NON-NLS-1$
                           "REFERENCING", // DB2 //$NON-NLS-1$
                           "REGEXP", //$NON-NLS-1$
                           "REGR_AVGX", //$NON-NLS-1$
                           "REGR_AVGY", //$NON-NLS-1$
                           "REGR_COUNT", //$NON-NLS-1$
                           "REGR_INTERCEPT", //$NON-NLS-1$
                           "REGR_R2", //$NON-NLS-1$
                           "REGR_SLOPE", //$NON-NLS-1$
                           "REGR_SXX", //$NON-NLS-1$
                           "REGR_SXY", //$NON-NLS-1$
                           "REGR_SYY", //$NON-NLS-1$
                           "REINDEX", //$NON-NLS-1$
                           "RELATIVE", //$NON-NLS-1$
                           "RELEASE", // DB2 //$NON-NLS-1$
                           "RELOAD", //$NON-NLS-1$
                           "RENAME", // DB2 //$NON-NLS-1$
                           "REPEAT", // DB2 //$NON-NLS-1$
                           "REPEATABLE", //$NON-NLS-1$
                           "REPLACE", //$NON-NLS-1$
                           "REPLICATION", //$NON-NLS-1$
                           "REQUIRE", //$NON-NLS-1$
                           "RESET", // DB2 //$NON-NLS-1$
                           "RESIGNAL", // DB2 //$NON-NLS-1$
                           "RESOURCE", //$NON-NLS-1$
                           "RESTART", // DB2 //$NON-NLS-1$
                           "RESTORE", //$NON-NLS-1$
                           "RESTRICT", // DB2 //$NON-NLS-1$
                           "RESULT", // DB2 //$NON-NLS-1$
                           "RESULT_SET_LOCATOR", // DB2 //$NON-NLS-1$
                           "RETURN", // DB2 //$NON-NLS-1$
                           "RETURNED_CARDINALITY", //$NON-NLS-1$
                           "RETURNED_LENGTH", //$NON-NLS-1$
                           "RETURNED_OCTET_LENGTH", //$NON-NLS-1$
                           "RETURNED_SQLSTATE", //$NON-NLS-1$
                           "RETURNS", // DB2 //$NON-NLS-1$
                           "REVOKE", // DB2 //$NON-NLS-1$
                           "RIGHT", // DB2 //$NON-NLS-1$
                           "RLIKE", //$NON-NLS-1$
                           "ROLE", //$NON-NLS-1$
                           "ROLLBACK", // DB2 //$NON-NLS-1$
                           "ROLLUP", //$NON-NLS-1$
                           "ROUTINE", // DB2 //$NON-NLS-1$
                           "ROUTINE_CATALOG", //$NON-NLS-1$
                           "ROUTINE_NAME", //$NON-NLS-1$
                           "ROUTINE_SCHEMA", //$NON-NLS-1$
                           "ROW", // DB2 //$NON-NLS-1$
                           "ROW_COUNT", //$NON-NLS-1$
                           "ROW_NUMBER", //$NON-NLS-1$
                           "ROWCOUNT", //$NON-NLS-1$
                           "ROWGUIDCOL", //$NON-NLS-1$
                           "ROWID", //$NON-NLS-1$
                           "ROWNUM", //$NON-NLS-1$
                           "ROWS", // DB2 //$NON-NLS-1$
                           "RRN", // DB2 //$NON-NLS-1$
                           "RULE", //$NON-NLS-1$
                           "RUN", // DB2 //$NON-NLS-1$
                           "SAVE", //$NON-NLS-1$
                           "SAVEPOINT", // DB2 //$NON-NLS-1$
                           "SCALE", //$NON-NLS-1$
                           "SCHEMA", // DB2 //$NON-NLS-1$
                           "SCHEMA_NAME", //$NON-NLS-1$
                           "SCHEMAS", //$NON-NLS-1$
                           "SCOPE", //$NON-NLS-1$
                           "SCOPE_CATALOG", //$NON-NLS-1$
                           "SCOPE_NAME", //$NON-NLS-1$
                           "SCOPE_SCHEMA", //$NON-NLS-1$
                           "SCRATCHPAD", // DB2 //$NON-NLS-1$
                           "SCROLL", //$NON-NLS-1$
                           "SEARCH", //$NON-NLS-1$
                           "SECOND", // DB2 //$NON-NLS-1$
                           "SECOND_MICROSECOND", //$NON-NLS-1$
                           "SECONDS", // DB2 //$NON-NLS-1$
                           "SECQTY", // DB2 //$NON-NLS-1$
                           "SECTION", //$NON-NLS-1$
                           "SECURITY", // DB2 //$NON-NLS-1$
                           "SELECT", // DB2 //$NON-NLS-1$
                           "SELF", //$NON-NLS-1$
                           "SENSITIVE", // DB2 //$NON-NLS-1$
                           "SEPARATOR", //$NON-NLS-1$
                           "SEQUENCE", //$NON-NLS-1$
                           "SERIALIZABLE", //$NON-NLS-1$
                           "SERVER_NAME", //$NON-NLS-1$
                           "SESSION", //$NON-NLS-1$
                           "SESSION_USER", //$NON-NLS-1$
                           "SET", // DB2 //$NON-NLS-1$
                           "SETOF", //$NON-NLS-1$
                           "SETS", //$NON-NLS-1$
                           "SETUSER", //$NON-NLS-1$
                           "SHARE", //$NON-NLS-1$
                           "SHOW", //$NON-NLS-1$
                           "SHUTDOWN", //$NON-NLS-1$
                           "SIGNAL", // DB2 //$NON-NLS-1$
                           "SIMILAR", //$NON-NLS-1$
                           "SIMPLE", // DB2 //$NON-NLS-1$
                           "SIZE", //$NON-NLS-1$
                           "SMALLINT", //$NON-NLS-1$
                           "SOME", // DB2 //$NON-NLS-1$
                           "SONAME", //$NON-NLS-1$
                           "SOURCE", // DB2 //$NON-NLS-1$
                           "SPACE", //$NON-NLS-1$
                           "SPATIAL", //$NON-NLS-1$
                           "SPECIFIC", // DB2 //$NON-NLS-1$
                           "SPECIFIC_NAME", //$NON-NLS-1$
                           "SPECIFICTYPE", //$NON-NLS-1$
                           "SQL", // DB2 //$NON-NLS-1$
                           "SQL_BIG_RESULT", //$NON-NLS-1$
                           "SQL_BIG_SELECTS", //$NON-NLS-1$
                           "SQL_BIG_TABLES", //$NON-NLS-1$
                           "SQL_CALC_FOUND_ROWS", //$NON-NLS-1$
                           "SQL_LOG_OFF", //$NON-NLS-1$
                           "SQL_LOG_UPDATE", //$NON-NLS-1$
                           "SQL_LOW_PRIORITY_UPDATES", //$NON-NLS-1$
                           "SQL_SELECT_LIMIT", //$NON-NLS-1$
                           "SQL_SMALL_RESULT", //$NON-NLS-1$
                           "SQL_WARNINGS", //$NON-NLS-1$
                           "SQLCA", //$NON-NLS-1$
                           "SQLCODE", //$NON-NLS-1$
                           "SQLERROR", //$NON-NLS-1$
                           "SQLEXCEPTION", //$NON-NLS-1$
                           "SQLID", // DB2 //$NON-NLS-1$
                           "SQLSTATE", //$NON-NLS-1$
                           "SQLWARNING", //$NON-NLS-1$
                           "SQRT", //$NON-NLS-1$
                           "SSL", //$NON-NLS-1$
                           "STABLE", //$NON-NLS-1$
                           "STANDARD", // DB2 //$NON-NLS-1$
                           "START", // DB2 //$NON-NLS-1$
                           "STARTING", //$NON-NLS-1$
                           "STATE", //$NON-NLS-1$
                           "STATEMENT", //$NON-NLS-1$
                           "STATIC", // DB2 //$NON-NLS-1$
                           "STATISTICS", //$NON-NLS-1$
                           "STATUS", //$NON-NLS-1$
                           "STAY", // DB2 //$NON-NLS-1$
                           "STDDEV_POP", //$NON-NLS-1$
                           "STDDEV_SAMP", //$NON-NLS-1$
                           "STDIN", //$NON-NLS-1$
                           "STDOUT", //$NON-NLS-1$
                           "STOGROUP", // DB2 //$NON-NLS-1$
                           "STORAGE", //$NON-NLS-1$
                           "STORES", // DB2 //$NON-NLS-1$
                           "STRAIGHT_JOIN", //$NON-NLS-1$
                           "STRICT", //$NON-NLS-1$
                           "STRING", //$NON-NLS-1$
                           "STRUCTURE", //$NON-NLS-1$
                           "STYLE", // DB2 //$NON-NLS-1$
                           "SUBCLASS_ORIGIN", //$NON-NLS-1$
                           "SUBLIST", //$NON-NLS-1$
                           "SUBMULTISET", //$NON-NLS-1$
                           "SUBPAGES", // DB2 //$NON-NLS-1$
                           "SUBSTRING", // DB2 //$NON-NLS-1$
                           "SUCCESSFUL", //$NON-NLS-1$
                           "SUM", //$NON-NLS-1$
                           "SUPERUSER", //$NON-NLS-1$
                           "SYMMETRIC", //$NON-NLS-1$
                           "SYNONYM", // DB2 //$NON-NLS-1$
                           "SYSDATE", //$NON-NLS-1$
                           "SYSFUN", // DB2 //$NON-NLS-1$
                           "SYSIBM", // DB2 //$NON-NLS-1$
                           "SYSID", //$NON-NLS-1$
                           "SYSPROC", // DB2 //$NON-NLS-1$
                           "SYSTEM", // DB2 //$NON-NLS-1$
                           "SYSTEM_USER", //$NON-NLS-1$
                           "TABLE", // DB2 //$NON-NLS-1$
                           "TABLE_NAME", //$NON-NLS-1$
                           "TABLES", //$NON-NLS-1$
                           "TABLESAMPLE", //$NON-NLS-1$
                           "TABLESPACE", // DB2 //$NON-NLS-1$
                           "TEMP", //$NON-NLS-1$
                           "TEMPLATE", //$NON-NLS-1$
                           "TEMPORARY", //$NON-NLS-1$
                           "TERMINATE", //$NON-NLS-1$
                           "TERMINATED", //$NON-NLS-1$
                           "TEXT", //$NON-NLS-1$
                           "TEXTSIZE", //$NON-NLS-1$
                           "THAN", //$NON-NLS-1$
                           "THEN", // DB2 //$NON-NLS-1$
                           "TIES", //$NON-NLS-1$
                           "TIME", //$NON-NLS-1$
                           "TIMESTAMP", //$NON-NLS-1$
                           "TIMEZONE_HOUR", //$NON-NLS-1$
                           "TIMEZONE_MINUTE", //$NON-NLS-1$
                           "TINYBLOB", //$NON-NLS-1$
                           "TINYINT", //$NON-NLS-1$
                           "TINYTEXT", //$NON-NLS-1$
                           "TO", // DB2 //$NON-NLS-1$
                           "TOAST", //$NON-NLS-1$
                           "TOP", //$NON-NLS-1$
                           "TOP_LEVEL_COUNT", //$NON-NLS-1$
                           "TRAILING", //$NON-NLS-1$
                           "TRAN", //$NON-NLS-1$
                           "TRANSACTION", // DB2 //$NON-NLS-1$
                           "TRANSACTION_ACTIVE", //$NON-NLS-1$
                           "TRANSACTIONS_COMMITTED", //$NON-NLS-1$
                           "TRANSACTIONS_ROLLED_BACK", //$NON-NLS-1$
                           "TRANSFORM", //$NON-NLS-1$
                           "TRANSFORMS", //$NON-NLS-1$
                           "TRANSLATE", //$NON-NLS-1$
                           "TRANSLATION", //$NON-NLS-1$
                           "TREAT", //$NON-NLS-1$
                           "TRIGGER", // DB2 //$NON-NLS-1$
                           "TRIGGER_CATALOG", //$NON-NLS-1$
                           "TRIGGER_NAME", //$NON-NLS-1$
                           "TRIGGER_SCHEMA", //$NON-NLS-1$
                           "TRIM", // DB2 //$NON-NLS-1$
                           "TRUE", //$NON-NLS-1$
                           "TRUNCATE", //$NON-NLS-1$
                           "TRUSTED", //$NON-NLS-1$
                           "TSEQUAL", //$NON-NLS-1$
                           "TYPE", // DB2 //$NON-NLS-1$
                           "UESCAPE", //$NON-NLS-1$
                           "UID", //$NON-NLS-1$
                           "UNBOUNDED", //$NON-NLS-1$
                           "UNCOMMITTED", //$NON-NLS-1$
                           "UNDER", //$NON-NLS-1$
                           "UNDO", // DB2 //$NON-NLS-1$
                           "UNENCRYPTED", //$NON-NLS-1$
                           "UNION", // DB2 //$NON-NLS-1$
                           "UNIQUE", // DB2 //$NON-NLS-1$
                           "UNKNOWN", //$NON-NLS-1$
                           "UNLISTEN", //$NON-NLS-1$
                           "UNLOCK", //$NON-NLS-1$
                           "UNNAMED", //$NON-NLS-1$
                           "UNNEST", //$NON-NLS-1$
                           "UNSIGNED", //$NON-NLS-1$
                           "UNTIL", // DB2 //$NON-NLS-1$
                           "UPDATE", // DB2 //$NON-NLS-1$
                           "UPDATETEXT", //$NON-NLS-1$
                           "UPPER", //$NON-NLS-1$
                           "USAGE", // DB2 //$NON-NLS-1$
                           "USE", //$NON-NLS-1$
                           "USER", // DB2 //$NON-NLS-1$
                           "USER_DEFINED_TYPE_CATALOG", //$NON-NLS-1$
                           "USER_DEFINED_TYPE_CODE", //$NON-NLS-1$
                           "USER_DEFINED_TYPE_NAME", //$NON-NLS-1$
                           "USER_DEFINED_TYPE_SCHEMA", //$NON-NLS-1$
                           "USING", // DB2 //$NON-NLS-1$
                           "UTC_DATE", //$NON-NLS-1$
                           "UTC_TIME", //$NON-NLS-1$
                           "UTC_TIMESTAMP", //$NON-NLS-1$
                           "VACUUM", //$NON-NLS-1$
                           "VALID", //$NON-NLS-1$
                           "VALIDATE", //$NON-NLS-1$
                           "VALIDATOR", //$NON-NLS-1$
                           "VALIDPROC", // DB2 //$NON-NLS-1$
                           "VALUE", //$NON-NLS-1$
                           "VALUES", // DB2 //$NON-NLS-1$
                           "VAR_POP", //$NON-NLS-1$
                           "VAR_SAMP", //$NON-NLS-1$
                           "VARBINARY", //$NON-NLS-1$
                           "VARCHAR", //$NON-NLS-1$
                           "VARCHAR2", //$NON-NLS-1$
                           "VARCHARACTER", //$NON-NLS-1$
                           "VARIABLE", // DB2 //$NON-NLS-1$
                           "VARIABLES", //$NON-NLS-1$
                           "VARIANT", // DB2 //$NON-NLS-1$
                           "VARYING", //$NON-NLS-1$
                           "VCAT", // DB2 //$NON-NLS-1$
                           "VERBOSE", //$NON-NLS-1$
                           "VIEW", // DB2 //$NON-NLS-1$
                           "VOLATILE", //$NON-NLS-1$
                           "VOLUMES", // DB2 //$NON-NLS-1$
                           "WAITFOR", //$NON-NLS-1$
                           "WHEN", // DB2 //$NON-NLS-1$
                           "WHENEVER", //$NON-NLS-1$
                           "WHERE", // DB2 //$NON-NLS-1$
                           "WHILE", // DB2 //$NON-NLS-1$
                           "WIDTH_BUCKET", //$NON-NLS-1$
                           "WINDOW", //$NON-NLS-1$
                           "WITH", // DB2 //$NON-NLS-1$
                           "WITHIN", //$NON-NLS-1$
                           "WITHOUT", //$NON-NLS-1$
                           "WLM", // DB2 //$NON-NLS-1$
                           "WORK", //$NON-NLS-1$
                           "WRITE", // DB2 //$NON-NLS-1$
                           "WRITETEXT", //$NON-NLS-1$
                           "X509", //$NON-NLS-1$
                           "XOR", //$NON-NLS-1$
                           "YEAR", // DB2 //$NON-NLS-1$
                           "YEAR_MONTH", //$NON-NLS-1$
                           "YEARS", // DB2 //$NON-NLS-1$
                           "ZEROFILL", //$NON-NLS-1$
                           "ZONE" //$NON-NLS-1$
        };
        
        RESERVED_WORDS = new HashSet<String>(words.length);
        
        for (String word : words) {
            RESERVED_WORDS.add(word);
        }
    }
    
    public static boolean containsWord(String word)
    {
        boolean rc;
        
        if (word == null) {
            rc = false;
        }
        else {
            rc = RESERVED_WORDS.contains(word.toUpperCase());
        }
        
        return rc;
    }
    
    /**
     * Utility class - no instances allowed
     */
    private SqlReservedWords()
    {
    }
}
